package dominio;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table;

@Entity
@Table(name="Factura")
public class Factura implements Serializable{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	@Id @GeneratedValue(strategy=GenerationType.AUTO)
	private int facturaId;
	
	@OneToOne(cascade = CascadeType.ALL)
	@JoinColumn(name="remitoId")
	private Remito remito;
	
	@Column(name = "numero", nullable = true) @GeneratedValue(strategy=GenerationType.AUTO)
	private int numero;
	
	@OneToOne(cascade = CascadeType.ALL)
	@JoinColumn(name="idCliente")
	private Cliente cliente;
	
	@Column(name = "fechaEmision", nullable = true)
	private Date fechaEmision;
	
	@Column(name = "fechaVencimiento", nullable = true)
	private Date fechaVencimiento;

	@OneToOne(cascade = CascadeType.ALL)
	@JoinColumn(name="formaPagoId")
	private FormaPago formaPago;

	
	
	
	public int getFacturaId() {
		return facturaId;
	}

	public void setFacturaId(int facturaId) {
		this.facturaId = facturaId;
	}

	public FormaPago getFormaPago() {
		return formaPago;
	}

	public void setFormaPago(FormaPago formaPago) {
		this.formaPago = formaPago;
	}

	public Date getFechaEmision() {
		return fechaEmision;
	}

	public void setFechaEmision(Date fechaEmision) {
		this.fechaEmision = fechaEmision;
	}

	public Date getFechaVencimiento() {
		return fechaVencimiento;
	}

	public void setFechaVencimiento(Date fechaVencimiento) {
		this.fechaVencimiento = fechaVencimiento;
	}

	public Remito getRemito() {
		return remito;
	}

	public void setRemito(Remito remito) {
		this.remito = remito;
	}

	public int getNumero() {
		return numero;
	}

	public void setNumero(int numero) {
		this.numero = numero;
	}

	public Cliente getCliente() {
		return cliente;
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}


}
